﻿using Persistencia;
using System;
using System.Collections.Generic;
using System.Data.Linq.SqlClient;
using System.Linq;
using System.Text;

namespace Dlls
{
   public class MovimentoDLL
    {
       Context context;

       public MovimentoDLL()
       {
           context = new Context();
       }

       public IEnumerable<Movimento> List()
       {
           return (from o in context.Movimentos select o).ToList();
       }

       public void Insert(Movimento movimento)
       {
           context.Movimentos.InsertOnSubmit(movimento);
           context.SubmitChanges();
       }

       public void Update(int codigo, Movimento movimento)
       {
           Movimento m = context.Movimentos.SingleOrDefault(o => o.Codigo == codigo);

           m.DataMovimentacao = movimento.DataMovimentacao;
           m.CodigoPessoa = movimento.CodigoPessoa;
           m.Total = movimento.Total;
           m.CodCaixaBanco = movimento.CodCaixaBanco;
           context.SubmitChanges();
       }

       public void Delete(Movimento movimento)
       {
           context.Movimentos.DeleteOnSubmit(movimento);
           context.SubmitChanges();
       }

       public Movimento getMovimento(int codigo, string TipoMovimento)
       {
           return context.Movimentos.SingleOrDefault(e => e.Codigo == codigo && e.TipoMovimentacao == TipoMovimento );
       }
       public string getProduto(int codigo)
       {
           return context.Produtos.SingleOrDefault(p => p.Codigo == codigo).Nome;
       }
       public string getFornecedor(int codigo)
       {
           return context.Pessoas.SingleOrDefault(p => p.Codigo == codigo).Nome;
       }
       public string getCaixaBanco(int codigo)
       {
           return context.CaixasBancos.SingleOrDefault(p => p.Codigo == codigo).NomeCaixaBanco;
       }
       public Movimento InserirMovimento(DateTime iData, int iCodPessoa, decimal iTotal, int iCodCaixa)
       {
           Movimento mov = new Movimento();
           mov.DataMovimentacao = iData;
           mov.CodigoPessoa = iCodPessoa;
           mov.Total = iTotal;
           mov.CodCaixaBanco = iCodCaixa;
           context.Movimentos.InsertOnSubmit(mov);
           context.SubmitChanges();

           return mov;
       }

    }
}
